package com.miku.blog.service;

import com.miku.blog.domain.dto.UserAuthDTO;
import com.miku.blog.domain.param.ReceptionParam;
import com.miku.blog.domain.pojo.ResponseResult;
import com.miku.blog.domain.UserAuth;
import com.baomidou.mybatisplus.extension.service.IService;
import com.miku.blog.domain.vo.PasswordDTO;

/**
* @author Miku
* @description 针对表【tb_user_auth】的数据库操作Service
* @createDate 2022-05-24 23:03:39
*/
public interface UserAuthService extends IService<UserAuth> {

    /**
     * 根据 用户名 获取用户数据
     * @param userName
     * @return
     */
    UserAuth getUserAuthByUserName(String userName);

    /**
     * 根据 用户邮箱 获取用户数据
     * @param email
     * @return
     */
    UserAuth getUserAuthByEmail(String email);

    /**
     *  修改密码
     * @param passwordDTO
     * @return
     */
    ResponseResult updatePassword(PasswordDTO passwordDTO);

    /**
     * 获取用户列表  {用户列表}
     * @param current
     * @param size
     * @param loginType
     * @param keywords
     * @return
     */
    ResponseResult getUserList(Integer current, Integer size,Integer loginType, String keywords);


    /**
     * 根据用户ID 禁用用户
     * @param userId
     * @return
     */
    ResponseResult disableByUserId(Integer userId,Integer isDisable);

    /**
     * 获取在线用户列表
     * @param current
     * @param size
     * @param keywords
     * @return
     */
    ResponseResult getOnlineUser(Integer current, Integer size, String keywords);

    /**
     * 根据用户ID 下线 用户
     * @param userIdList
     * @return
     */
    ResponseResult offLineUser(Integer[] userIdList);


    /**
     * 更新用户邮箱
     * @param userAuthDTO
     * @return
     */
    ResponseResult updateEmail(UserAuthDTO userAuthDTO);


    /**
     * [忘记密码]
     * 验证邮箱验证码,通过则更新用户密码
     * @param userAuthDTO
     * @return
     */
    ResponseResult updatePassword(UserAuthDTO userAuthDTO);

    /**
     * 注册用户
     * @param userAuthDTO
     * @return
     */
    ResponseResult register(UserAuthDTO userAuthDTO);
}
